In machine learning, the goal is typically to develop a solution to a problem. The solution may involve a numeric prediction, as in the prediction of the throughput of a certain type of device given some parameters that characterize workload. The problem may represent a discrete classification, such as whether a credit card charge is fraudulent, or what disease is causing a particular set of observed symptoms. One way of developing such solutions involves a set of training cases.
Machine learning may be performed using evolutionary computation, an umbrella term encompassing primarily genetic algorithms and genetic programming, but also including such things as evolution strategies and evolution programming. These approaches have in common the use of a population of candidate solutions. Each of the candidates in the population is presented with training cases to solve. For example, candidates in the population may be presented with the input data of a training case and prompted to make a prediction. The predictions are compared with the desired target outputs of the training cases and from the error in the prediction, a fitness value for the candidate is determined. Such fitness values might include the mean relative error or prediction accuracy, for example. Typically each candidate solution will be presented with each training case. In some situations, each candidate solution will be presented with a subset of the available training cases. For example, if the set of available training cases is large, it may be computationally infeasible to evaluate each candidate solution in the context of each training case. In addition, presentation of all or most of training cases may lead to “overfitting the data.” In such a situation, the solution developed is valid for the cases within the training case set, but may be unable to generalize to cases outside the training case set.